package cn.tedu.adminsystem.webapi.mapper;
import cn.tedu.community.commons.pojo.admin.entity.Admin;
import cn.tedu.community.commons.pojo.admin.vo.AdminListItemVO;
import cn.tedu.community.commons.pojo.admin.vo.AdminLoginInfoVO;
import cn.tedu.community.commons.pojo.admin.vo.AdminStandardVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface AdmMapper {
    /**
     * 插入管理员数据
     */
    int insert(Admin admin);

    /**
     * 批量插入管理员数据
     */
    int insertBatch(Admin[] adminList);

    /**
     * 根据管理员id删除管理员数据
     */
    int deleteById(Long id);

    /**
     * 批量删除管理员
     */
    int deleteByIds(Long[] ids);

    /**
     * 根据管理员id修改管理员的数据
     */
    int update(Admin admin);

    /**
     * 根据用户名统计管理员数据的数量
     */
    int countByAdmName(String admName);

    int countByAdmNameAndNotId(@Param("admName") String admName, @Param("id") Long id);

    /**
     * 根据手机号码统计管理员数据的数量
     */
    int countByPhone(String phone);

    int countByPhoneAndNotId(@Param("phone") String phone, @Param("id") Long id);

    /**
     * 根据电子邮箱统计管理员数据的数量
     */
    int countByEmail(String email);

    int countByEmailAndNotId(@Param("email") String email,@Param("id")Long id);

    /**
     * 根据管理员id查询管理员数据详情
     */
    AdminStandardVO getStandardById(Long id);

    /**
     * 根据管理员用户名查询管理登录信息
     */
    AdminLoginInfoVO getLoginInfoByAdmName(String admName);

    /**
     * 查询管理员数据列表
     */
    List<AdminListItemVO> list();

    /**
     * 根据id修改密码
     */
    int updatePass(Long id,String newPassword);

    /**
     * 根据id查询原密码（用于修改密码）
     */
    String getOldPassword(Long id);
}
